import { defineConfig } from '@vben/vite-config';

import legacy from '@vitejs/plugin-legacy';
import vue from '@vitejs/plugin-vue';

export default defineConfig(async () => {
  return {
    application: {},
    vite: {
      server: {
        proxy: {
          '/bifang3': {
            changeOrigin: true,
            rewrite: (path) => path.replace(/^\/bifang3/, ''),
            // mock代理目标地址
            target: 'http://127.0.0.1:48080/bifang3',
            ws: true,
          },
        },
      },
    },
    plugins: [
      vue(),
      legacy({
        // 更精准的目标浏览器配置
        targets: ['defaults', 'ie >= 11'],
        // 自动检测并注入所需的 polyfill（推荐方式）
        polyfills: 'auto',
        // 明确指定 ES2023 特性的 polyfill
        additionalLegacyPolyfills: [
          'regenerator-runtime/runtime',
          'es2023.array.find-last',
          'es2023.array.find-last-index',
        ],
        // 为不支持模块的浏览器生成传统版本
        renderLegacyChunks: true,
        // 为现代浏览器生成更轻量的 polyfill
        modernPolyfills: true,
      }),
    ],
    // 其他 Vite 配置
    build: {
      // 针对不同浏览器设置更精细的目标
      target: {
        target: 'es2015',
      },
      // 启用 CSS 兼容处理
      cssTarget: 'chrome61',
    },
  };
});
